Trend Vision One Container Securityでイメージスキャンしてみた
こんにちは、シマです。
皆さんはTrend Vision Oneを使っていますか?前回に引き続き、今回もTrend Vision OneのContainer Securityについてです。Trend Vision One Container Security(以降V1CS)では、ECS Fargate環境という観点ではコンテナのイメージスキャン、ランタイム監視(ログ出力のみ)、ランタイム脆弱性検索の3つの機能があります。前回は、ランタイム監視(ログ出力のみ)について触れました。
今回は、他の機能のコンテナイメージスキャンについて触れていこうと思います。
仕組みについて
V1CSのコンテナイメージスキャンはTrend Micro Artifact Scanner (以降TMAS)という機能名で実装されています。TMASはCLIツールを任意の環境に実装して実行します。仕組みとしては、スキャン対象のコンテナイメージのSBOMを作成し、SaaSとして存在するバックエンドにSBOMを送信してスキャンをするようです。CLIツールとして実装するので、CI/CDパイプラインや開発時の任意タイミングでのスキャンが可能です。V1CSの機能としてもTMASによるデプロイ制御の機能がありますが、現時点(2023/12)では、ECS Fargate環境では利用することができません。
試してみた
今回は以下のような構成にしています。
EC2内にTMASを実装し、イメージスキャンを実施してみます。
1. TMASダウンロード
以下のページ内「ダウンロード/インストール」セクションに記載のURLより、環境に合わせたモジュールをダウンロード&解凍をします。
[ec2-user@ip-10-0-3-136 ~]$ wget https://cli.artifactscan.cloudone.trendmicro.com/tmas-cli/latest/tmas-cli_Linux_x86_64.tar.gz [ec2-user@ip-10-0-3-136 ~]$ tar -zxvf tmas-cli_Linux_x86_64.tar.gz
解凍後の実行ファイル「tmas」は任意のディレクトリへ移動します。今回は「/home/ec2-user/tm/tmas」として移動しました。
2. APIキーの取得
Trend Vision Oneコンソールへログインし、左ペインから「Administration」→「API Keys」を選択します。表示された画面から「APIキーを追加」を選択します。
表示される画面から任意の名前、役割、有効期限を設定し、追加ボタンを押下します。
役割につきましては、「Run artifact scan」の権限がある役割であれば大丈夫です。
※今回はカスタムの役割として事前に作成した「Run artifact scan」権限のみの役割を使用しています。
表示されたAPIキーをコピーしておきます。
3. EC2の環境変数設定
「1. TMASダウンロード」で解凍したファイル「tmas」のPATHを追加と、「2. APIキーの取得」のAPIキーを「TMAS_API_KEY」として環境変数を設定します。
export TMAS_API_KEY=************* export PATH="/home/ec2-user/tm:$PATH" (以下略)
「.bash_profile」を書き換えたので、再読み込みを行います。
[ec2-user@ip-10-0-3-136 ~]$ source .bash_profile
4. イメージスキャン
準備が終わりましたので早速イメージスキャンを実行してみます。docker imagesとしては以下のような状態になっています。
[ec2-user@ip-10-0-3-136 ~]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ************.dkr.ecr.ap-northeast-1.amazonaws.com/test-20231213-02 latest 22405d799895 4 minutes ago 267MB test-20231213-02 latest 22405d799895 4 minutes ago 267MB test-20231213-01 latest 62dc4c637d8e 11 minutes ago 275MB
まずはローカルのtest-20231213-01に対して、イメージスキャンを実行します。
[ec2-user@ip-10-0-3-136 ~]$ tmas scan docker:test-20231213-01:latest --malwareScan -r ap-northeast-1 { "vulnerability": { "totalVulnCount": 14, "criticalCount": 0, "highCount": 5, "mediumCount": 9, "lowCount": 0, (中略)... "malware": { "scanResult": 1, "findings": [ { "layerDigest": "sha256:18ee9fd8db0d1b45350d1167a3368dab9405e68c4b54a0d428738b2bcd424f73", "layerDiffID": "sha256:18ee9fd8db0d1b45350d1167a3368dab9405e68c4b54a0d428738b2bcd424f73", "fileName": "eicar.com", "fileSize": 68, "fileSHA256": "sha256:275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f", "foundMalwares": [ { "fileName": "eicar.com", "malwareName": "Eicar_test_file" } ] } ], "scanID": "ebb6b308-cff5-4cbd-9944-13ded9b7458a", "scannerVersion": "1.0.0-626" } }
合計14件検出しました。イメージスキャン時にオプションとして「--malwareScan」を付けることで、不正プログラム検索の有効化ができます。今回の例ではEICARテストファイルを検出することができました。
イメージスキャン結果は割愛しますが、ECRのイメージを対象とする時は以下のコマンドを実施することでイメージスキャンが可能です。
[ec2-user@ip-10-0-3-136 ~]$ tmas scan registry:************.dkr.ecr.ap-northeast-1.amazonaws.com/test-20231213-02:latest --malwareScan -r ap-northeast-1
最後に
今回はV1CSのコンテナイメージスキャンであるTrend Micro Artifact Scannerについて触れてみました。CLIによる実装なので、任意タイミングでスキャン可能な点や、不正プログラム検索が可能な点に強みがあると感じました。
本記事がどなたかのお役に立てれば幸いです。